﻿using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace CPN.PJN.Silverlight.Common.Helpers
{
    public static class CollectionExtensions
    {
        /// <summary>
        /// Convertie une IEnumerable en ObservableCollection
        /// </summary>
        public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> liste)
        {
            ObservableCollection<T> obs = new ObservableCollection<T>();

            foreach (T t in liste)
            {
                obs.Add(t);
            }

            return obs;
        }

        /// <summary>
        /// Ajoute un intervalle d'éléments à une collection
        /// </summary>
        /// <typeparam name="T">Type des objets de la collection</typeparam>
        /// <param name="collection">La collection à laquelle on ajoute des éléments</param>
        /// <param name="items">Les éléments à ajouter à la collection</param>
        /// <returns>La collection</returns>
        public static ICollection<T> AddRange<T>(this ICollection<T> collection, IEnumerable<T> items)
        {
            foreach (var each in items)
            {
                collection.Add(each);
            }

            return collection;
        }
    }
}